home *** CD-ROM | disk | FTP | other *** search
- package SitemapComp;
-
- import com.netobjects.nfc.api.CStringArray;
- import com.netobjects.nfc.api.ComponentApp;
- import com.netobjects.nfc.api.DAssetManager;
- import com.netobjects.nfc.api.DDrawPicture;
- import com.netobjects.nfc.api.DFile;
- import com.netobjects.nfc.api.DImage;
- import com.netobjects.nfc.api.DLayout;
- import com.netobjects.nfc.api.DMessageBox;
- import com.netobjects.nfc.api.DRect;
- import com.netobjects.nfc.api.DSite;
- import com.netobjects.nfc.api.DSize;
- import com.netobjects.nfc.api.IDInspector;
-
- public class SitemapComp extends ComponentApp {
- static final long serialVersionUID = 7965607546372163000L;
- int[] idApplet;
- int idImage;
- int idScript;
- int Gcontext;
- boolean s_published;
- DAssetManager assMan;
- String m_codebase;
- DDrawPicture thePicture;
- String sepChar;
- DFile tempfile;
- String Version = "3.0.0";
-
- private void debug(String out) {
- new DMessageBox();
- }
-
- protected void onFinalize() {
- int max = 12;
- if (this.s_published) {
- ++max;
- }
-
- for(int i = 0; i < max; ++i) {
- this.assMan.RemoveAsset(this.idApplet[i]);
- }
-
- this.assMan.RemoveAsset(this.idImage);
- this.assMan.RemoveAsset(this.idScript);
- }
-
- public String getLocation(int image) {
- String imageURL = this.assMan.GetAssetLocation(image, this.Gcontext, 1);
- imageURL.replace(' ', '_');
- imageURL.replace('\\', '/');
- if (imageURL.indexOf(":/") > 0) {
- imageURL.replace(':', '|');
- }
-
- if (imageURL.indexOf(".//") == 0) {
- imageURL = String.valueOf("./").concat(String.valueOf(imageURL.substring(3)));
- } else {
- imageURL.replace(':', '/');
- }
-
- return imageURL;
- }
-
- public void migrationPatch() {
- if (this.idApplet.length < 13) {
- this.Version = "3.0.0";
- int[] tempArray = this.idApplet;
- this.idApplet = new int[13];
-
- for(int ind = 0; ind < tempArray.length; ++ind) {
- this.idApplet[ind] = tempArray[ind];
- }
-
- this.s_published = false;
- if (this.idScript > 0) {
- this.assMan.RemoveAsset(this.idScript);
- }
-
- this.idApplet[12] = 0;
-
- for(int ind = 0; ind < this.idApplet.length; ++ind) {
- if (this.idApplet[ind] > 0) {
- this.assMan.RemoveAsset(this.idApplet[ind]);
- }
- }
-
- this.idApplet[0] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.class")), "Applets/Plug-ins", "/");
- this.idApplet[1] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("button_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[2] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("check_box_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[3] = 0;
- this.idApplet[4] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("nav_canvas.class")), "Applets/Plug-ins", "/");
- this.idApplet[5] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("outline_list.class")), "Applets/Plug-ins", "/");
- this.idApplet[6] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("search_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[7] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_entry.class")), "Applets/Plug-ins", "/");
- this.idApplet[8] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_grid_builder.class")), "Applets/Plug-ins", "/");
- this.idApplet[9] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("web_structure_builder.class")), "Applets/Plug-ins", "/");
- this.idApplet[10] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.cab")), "Applets/Plug-ins", "/");
- this.idApplet[11] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.zip")), "Applets/Plug-ins", "/");
- }
-
- }
-
- public void onCopy() {
- this.assMan.CopyAsset(this.idImage);
- this.assMan.CopyAsset(this.idScript);
- int[] tempIdApplet = new int[12];
-
- for(int i = 0; i < 12; ++i) {
- tempIdApplet[i] = this.idApplet[i];
- this.assMan.CopyAsset(this.idApplet[i]);
- }
-
- this.idApplet = tempIdApplet;
- }
-
- public void onDrop(DLayout layout, DRect r, int fDrop) {
- if (fDrop == 1) {
- this.tempfile = new DFile();
- this.sepChar = this.tempfile.GetPathChar();
- this.thePicture = new DDrawPicture();
- this.m_codebase = this.thePicture.getCodeBase();
- this.idApplet = new int[13];
- this.idImage = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.gif")), "Image", "/");
- this.idApplet[0] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.class")), "Applets/Plug-ins", "/");
- this.idApplet[1] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("button_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[2] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("check_box_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[3] = 0;
- this.idApplet[4] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("nav_canvas.class")), "Applets/Plug-ins", "/");
- this.idApplet[5] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("outline_list.class")), "Applets/Plug-ins", "/");
- this.idApplet[6] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("search_panel.class")), "Applets/Plug-ins", "/");
- this.idApplet[7] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_entry.class")), "Applets/Plug-ins", "/");
- this.idApplet[8] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_grid_builder.class")), "Applets/Plug-ins", "/");
- this.idApplet[9] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("web_structure_builder.class")), "Applets/Plug-ins", "/");
- this.idApplet[10] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.cab")), "Applets/Plug-ins", "/");
- this.idApplet[11] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.zip")), "Applets/Plug-ins", "/");
- String bmpFile = this.assMan.GetAssetLocation(this.idImage, 0, 1);
- this.thePicture.setImageFile(bmpFile);
- DImage imageSizer = new DImage();
- imageSizer.setImageFile(bmpFile);
- DSize currentImageSize = imageSizer.getSize();
- this.thePicture.SetPositionRect(r.getLeft(), r.getTop(), r.getLeft() + currentImageSize.getWidth(), r.getTop() + currentImageSize.getHeight());
- this.thePicture.setStretch(1);
- layout.AddObject(this.thePicture);
- DLayout currentILayout = this.thePicture.getLayout();
- DSite site = currentILayout.getSite();
- this.s_published = false;
- }
-
- }
-
- public void onInspect(CStringArray Names, CStringArray Types) {
- Names.Set("Image");
- Types.Set("Image");
- }
-
- public String onInstall(DAssetManager cam, String codebase) {
- this.m_codebase = codebase;
- this.assMan = cam;
- return "Site Mapper";
- }
-
- public void onPublish(DAssetManager asm, int context) {
- this.assMan = asm;
- this.m_codebase = this.thePicture.getCodeBase();
- if (this.idApplet[3] > 0) {
- asm.RemoveAsset(this.idApplet[3]);
- }
-
- this.migrationPatch();
- this.Gcontext = context;
- this.thePicture.setHTMLBefore("<a href =\"JavaScript:go();\" target=\"_self\">");
- this.thePicture.setHTMLAfter("</a>");
- int sm = this.assMan.GetFileNumber(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html")));
- if (sm == 0) {
- if (this.idApplet[12] > 0) {
- this.assMan.RemoveAsset(this.idApplet[12]);
- }
-
- this.s_published = false;
- }
-
- this.updateSitemapperHTML(context);
- new DFile();
- DLayout currentILayout = this.thePicture.getLayout();
- String homePath = currentILayout.GetHomePath();
- sm = this.idApplet[12];
- String sm_l = this.assMan.GetAssetLocation(sm, context, 1);
- String buffer = "<script language=\"JavaScript\">\n";
- buffer = String.valueOf(buffer).concat(String.valueOf("<!--\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("top.name=\"netobjects_main_power\";\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("function go(){\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("//use time to create navigator name(allow random).\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" if (navigator.userAgent.substring(0,9) != \"Mozilla/2\"){\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" //3.0 and above\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf(" var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
- buffer = String.valueOf(buffer).concat(String.valueOf(" }\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" else if (window.name == \"netobjects_main_power\"){\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" //2.0 re-entry position - main window already have name\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf(" var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
- buffer = String.valueOf(buffer).concat(String.valueOf(" }\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" else {\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" //2.0\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" var Replace = window.open(window.location,\"netobjects_main_power\");\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf(" var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
- buffer = String.valueOf(buffer).concat(String.valueOf(" window.close();\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(" }\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("}\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("//-->\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("</script>\n"));
- currentILayout.setHTMLBefore(buffer);
- }
-
- public String PropertyListener(String Event, String Value, int Get, int propIndex, IDInspector insp) {
- if (Get == 1) {
- if (Event.compareTo("Image") == 0) {
- return Integer.toString(this.idImage);
- }
- } else if (Event.compareTo("Image") == 0) {
- this.assMan.RemoveAsset(this.idImage);
- this.idImage = Integer.parseInt(Value, 10);
- this.thePicture.setImageFile(this.assMan.GetAssetLocation(this.idImage, 1, 1));
- }
-
- return "";
- }
-
- public String stringToJavaScriptHTML(String string) {
- StringBuffer result = new StringBuffer();
-
- for(int i = 0; i < string.length(); ++i) {
- char curChar = string.charAt(i);
- switch (curChar) {
- case '"':
- result = result.append(""");
- break;
- case '\'':
- result = result.append("\\'");
- break;
- default:
- result = result.append(curChar);
- }
- }
-
- return result.toString();
- }
-
- public void updateSitemapperHTML(int context) {
- DLayout currentILayout = this.thePicture.getLayout();
- DSite site = currentILayout.getSite();
- new DMessageBox();
- String sitemapperHTML = String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html"));
- DFile outFile = new DFile();
- String sourceFileValue = site.getSiteInfo();
- sourceFileValue = this.stringToJavaScriptHTML(sourceFileValue);
- if (outFile.Open(sitemapperHTML, 4097)) {
- String buffer = "<HTML>\n";
- buffer = String.valueOf(buffer).concat(String.valueOf("<HEAD>\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("<TITLE> Site Mapper </TITLE>\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("</HEAD>\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("<BODY BGCOLOR=\"#ffffff\" onload=\"if(navigator.userAgent.substring(0,9) == 'Mozilla/3'){focus()}\">\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("<script language=\"JavaScript\">\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("<!--\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("document.write('<APPLET CODE=\"Sitemapper.class\""));
- outFile.WriteString(buffer, -1);
- if (context == 0 || context == 1) {
- this.m_codebase.replace('\\', '/');
- outFile.WriteString(String.valueOf(String.valueOf(" CODEBASE=\"file:///").concat(String.valueOf(this.m_codebase))).concat(String.valueOf("\"")), -1);
- }
-
- buffer = " ARCHIVE=\"Sitemapper.zip\" WIDTH=350 HEIGHT=300>');\n";
- buffer = String.valueOf(buffer).concat(String.valueOf("document.write('<param name=\"cabbase\" value=\"Sitemapper.cab\">');\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf("document.write('<param name=\"source_file\" value=\"").concat(String.valueOf(sourceFileValue))).concat(String.valueOf("\">');\n"))));
- buffer = String.valueOf(buffer).concat(String.valueOf("document.write('</APPLET>');\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("//-->\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("</script>\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("</BODY>\n"));
- buffer = String.valueOf(buffer).concat(String.valueOf("</HTML>\n"));
- outFile.WriteString(buffer, -1);
- outFile.Close();
- if (!this.s_published) {
- this.idApplet[12] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html")), "HTML", "/");
- this.s_published = true;
- }
-
- }
- }
- }
-